import math

def gerar_cubos(n):
    for i in range(n):
        yield i**3

def predicado(s):
    return len(s) % 2

def f(x, y):
    return x + math.sqrt(y)

lista = filter(predicado, ['batata', 'cebola', 'couve', 'repolho'])
print list

print reduce(f, gerar_cubos(5))
